package org.deltaset.meta.internal;

/**
 *
 * @author dmakariev
 */
enum MetaActionType {

    TITLE,//annotated with @DsTitle, or is named 'title' and returns String
    FACTORY_METHOD, //annotated with @DsFactoryMethod (and returns Object.class)
    DEFAULT_FINDER, //annotated with @DsDefaultFinder or is named 'findAll'
    FINDER, //annotated with @DsFinder or name starts with 'find'
    ByID, //annotated with @DsFindById or is named 'findById' AND has single parameter
    ////// think about the edit case.. is that annotation needed at all ? or the @DsReturnEntity and @DsAcceptEntity are enough ////   
    //EDIT,//annotated with @DsEdit,  or is named 'edit' AND has single parameter  
    ///////    
    ENTITY_MEMBER, //is defined in the entityClass (or some of the super classes)
    PAGING,//has parameters with annotations @DsFirstResult and @DsMaxResult (index less then 3)

    ACCEPT_ENTITY, //the first parameter is entityClass, or is annotated with @DsAcceptEntity and has at least one parameter
    ZERO_PARAMETERS,//has no parameters
    SINGLE_PARAMETER,
    RETURN_COLLECTION,
    RETURN_ENTITY_COLLECTION,
    RETURN_ENTITY,//returns entityClass, or is annotated with @DsReturnEntity and returns neither simple nor collection.. 
    RETURN_VOID,
    RETURN_SIMPLE, //string, number , date, enum
    RETURN_OBJECT, //not simple and not entityClass
    HELPER, //starts with count (disable, message)            
}
